<template>
	<div>
		<h2>当前求和为:{{sum}}</h2>
		<h2>当前求和放大10倍为:{{$store.getters.bigSum}}</h2>
		<h4>学校：{{school}}</h4>
		<h4>汽车：{{car}}</h4>
		<h4></h4>
		<select v-model.number="n">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
		</select>
		<button @click="increment">+</button>
		<button @click="decrement">-</button>
		<button @click="incrementOdd">当前和为奇数再加</button>
		<button @click="incrementWait">等一等再加</button>
	</div>
</template>

<script>
	import {mapState} from 'vuex'
	export default {
		name:'Count',
		data(){
			return{
				n:1, //用户所选择的数字
			}
		},
		computed:{
			//靠程序员亲自去写计算属性，读取$store.state中的值（费劲）
			he:function(){
				return this.$store.state.sum
			},
			xuexiao:function(){
				return this.$store.state.school
			},
			che:function(){
				return this.$store.state.car
			},

			//第一种写法：靠mapState批量生成计算属性（爽！）
			// ...mapState({he:'sum',xuexiao:'school',che:'car'})

			//第二种写法：靠mapState批量生成计算属性（更爽！），前提：模板中用的名，和state中存的名一致
			// ...mapState(['sum','school','car'])

		},
		methods:{
			//加
			increment(){
				//我只想单纯的加，没有必要找服务员(actions),可以直接使用commit找后厨(mutations)
				this.$store.commit('JIA',this.n)
			},
			//减
			decrement(){
				//我只想单纯的减，没有必要找服务员(actions),可以直接使用commit找后厨(mutations)
				this.$store.commit('JIAN',this.n)
			},
			//奇数再加
			incrementOdd(){
				// if(this.$store.state.sum % 2){
				//我想奇数再加，要找服务员(actions，服务员再找后厨(mutations)
				this.$store.dispatch('jiaOdd',this.n)
				// }
			},
			//等一等再加
			incrementWait(){
				//我想等一等再加，要找服务员(actions)，服务员等一等再找后厨(mutations)
				this.$store.dispatch('jiaWait',this.n)
			}
		},
	}

</script>

<style>
	*{
		margin-left: 5px;
	}
</style>